home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / src / emacsfns.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-30  |  63.6 KB  |  1,465 lines

  1. /* Various function declarations for XEmacs.
  2.    Used to be part of lisp.h
  3.    Copyright (C) 1985-1987, 1992-1994 Free Software Foundation, Inc.
  4.  
  5. This file is part of XEmacs.
  6.  
  7. XEmacs is free software; you can redistribute it and/or modify it
  8. under the terms of the GNU General Public License as published by the
  9. Free Software Foundation; either version 2, or (at your option) any
  10. later version.
  11.  
  12. XEmacs is distributed in the hope that it will be useful, but WITHOUT
  13. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  14. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  15. for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with XEmacs; see the file COPYING.  If not, write to the Free
  19. Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  20.  
  21. /* Synched up with: Mule 2.0.  Divergent from FSF. */
  22.  
  23. #ifndef _EMACSFNS_H_
  24. #define _EMACSFNS_H_
  25.  
  26.  
  27. /* Defined in abbrev.c */
  28. extern Lisp_Object Vfundamental_mode_abbrev_table;
  29. extern Lisp_Object Fexpand_abbrev (void);
  30.  
  31.  
  32. /* Defined in alloc.c */
  33. extern void release_breathing_space (void);
  34. extern Lisp_Object Fcons (Lisp_Object car, Lisp_Object cdr);
  35. extern Lisp_Object Flist (int nargs, Lisp_Object *args);
  36. extern Lisp_Object Fmake_list (Lisp_Object length, Lisp_Object init);
  37. extern Lisp_Object Fmake_vector (Lisp_Object length, Lisp_Object init);
  38. extern Lisp_Object make_vector (int length, Lisp_Object init);
  39. extern Lisp_Object Fvector (int nargs, Lisp_Object *args);
  40. extern Lisp_Object vector1 (Lisp_Object);
  41. extern Lisp_Object vector2 (Lisp_Object, Lisp_Object);
  42. extern Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object);
  43. extern Lisp_Object vector4 (Lisp_Object, Lisp_Object, Lisp_Object,
  44.                 Lisp_Object);
  45. extern Lisp_Object vector5 (Lisp_Object, Lisp_Object, Lisp_Object,
  46.                 Lisp_Object, Lisp_Object);
  47. extern Lisp_Object vector6 (Lisp_Object, Lisp_Object, Lisp_Object,
  48.                 Lisp_Object, Lisp_Object, Lisp_Object);
  49. extern Lisp_Object vector7 (Lisp_Object, Lisp_Object, Lisp_Object,
  50.                 Lisp_Object, Lisp_Object, Lisp_Object,
  51.                 Lisp_Object);
  52. extern Lisp_Object vector8 (Lisp_Object, Lisp_Object, Lisp_Object,
  53.                 Lisp_Object, Lisp_Object, Lisp_Object,
  54.                 Lisp_Object, Lisp_Object);
  55. extern Lisp_Object Fmake_symbol (Lisp_Object name);
  56. extern Lisp_Object Fmake_marker (void);
  57. extern Lisp_Object Fmake_string (Lisp_Object length, Lisp_Object init);
  58. extern void garbage_collect_1 (void);
  59. extern Lisp_Object Fgarbage_collect (void);
  60. extern Lisp_Object list1 (Lisp_Object);
  61. extern Lisp_Object list2 (Lisp_Object, Lisp_Object);
  62. extern Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object);
  63. extern Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
  64. extern Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
  65.               Lisp_Object);
  66. extern Lisp_Object list6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
  67.               Lisp_Object, Lisp_Object);
  68.  
  69. extern void malloc_warning (CONST char *);
  70. extern DOESNT_RETURN memory_full (void);
  71. extern void *xmalloc (int size);
  72. extern void *xmalloc_and_zero (int size);
  73. extern void *xrealloc (void *, int size);
  74. #ifdef ERROR_CHECK_MALLOC
  75. extern void xfree_1 (void *);
  76. #else
  77. extern void xfree (void *);
  78. #endif
  79. extern char *xstrdup (CONST char *);
  80. extern void disksave_object_finalization (void);
  81. extern int purify_flag;
  82. extern int gc_in_progress;
  83. extern int gc_currently_forbidden;
  84. extern Lisp_Object restore_gc_inhibit (Lisp_Object);
  85. extern int gc_generation_number[1];
  86. extern int purified (Lisp_Object);
  87.  
  88. extern Lisp_Object build_string (CONST char *);
  89. extern Lisp_Object build_ext_string (CONST char *);
  90. extern Lisp_Object build_translated_string (CONST char *);
  91. extern Lisp_Object make_string (CONST Bufbyte *, Bytecount);
  92. extern Lisp_Object make_ext_string (CONST char *, int);
  93. extern Lisp_Object make_uninit_string (int length);
  94.  
  95. extern Lisp_Object make_float (double float_value);
  96.  
  97. extern Lisp_Object Fmake_byte_code (int nargs, Lisp_Object *args);
  98.  
  99. extern Lisp_Object Fpurecopy (Lisp_Object);
  100. extern void report_pure_usage (int report_impurities,
  101.                                int die_if_pure_storage_exceeded);
  102. extern Lisp_Object make_pure_string (CONST Bufbyte *, Bytecount len,
  103.                      int nocopy);
  104. extern Lisp_Object make_pure_pname (CONST Bufbyte *, Bytecount len,
  105.                     int nocopy);
  106. extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
  107. extern Lisp_Object make_pure_vector (int len, Lisp_Object init);
  108.  
  109. extern void free_cons (struct Lisp_Cons *ptr);
  110. extern void free_list (Lisp_Object list);
  111. extern void free_alist (Lisp_Object alist);
  112.  
  113. #ifdef LISP_FLOAT_TYPE
  114. extern Lisp_Object make_pure_float (double float_value);
  115. /* extern void free_float (struct Lisp_Float *); */
  116. #endif
  117.  
  118.  
  119. /* Defined in buffer.c */
  120. extern Lisp_Object make_buffer (struct buffer *buf);
  121. extern Lisp_Object Fset_buffer_left_margin_width (Lisp_Object width,
  122.                          Lisp_Object buffer);
  123. extern Lisp_Object Fset_buffer_right_margin_width (Lisp_Object width,
  124.                           Lisp_Object buffer);
  125. extern Lisp_Object Fbuffer_left_margin_width (Lisp_Object buffer);
  126. extern Lisp_Object Fbuffer_right_margin_width (Lisp_Object buffer);
  127. extern Lisp_Object Ferase_buffer (Lisp_Object buffer);
  128. extern Lisp_Object Fbuffer_disable_undo (Lisp_Object buffer);
  129. extern Lisp_Object Fkill_buffer (Lisp_Object buffer);
  130. extern Lisp_Object Fbuffer_name (Lisp_Object buffer);
  131. extern Lisp_Object Fget_buffer (Lisp_Object name);
  132. extern Lisp_Object Fget_buffer_create (Lisp_Object name);
  133. extern Lisp_Object Fget_file_buffer (Lisp_Object fn);
  134. extern Lisp_Object Fset_buffer (Lisp_Object buffer);
  135. extern Lisp_Object Fbarf_if_buffer_read_only (Lisp_Object buffer,
  136.                                               Lisp_Object s, Lisp_Object e);
  137. extern Lisp_Object Fcurrent_buffer (void);
  138. extern Lisp_Object Fswitch_to_buffer (Lisp_Object buf, Lisp_Object norecord);
  139. extern Lisp_Object Fpop_to_buffer (Lisp_Object bufname, Lisp_Object other,
  140.                                    Lisp_Object same_frame);
  141. extern Lisp_Object Fother_buffer (Lisp_Object buffer, Lisp_Object frame,
  142.                   Lisp_Object visible_ok);
  143. extern Lisp_Object Fbuffer_list (Lisp_Object frame);
  144. extern Lisp_Object Fset_buffer_modified_p (Lisp_Object flag,
  145.                        Lisp_Object buffer);
  146. extern Lisp_Object QSscratch;   /* "*scratch*" */
  147. extern Lisp_Object Qbuffer_file_name, Qbuffer_undo_list;
  148. extern Lisp_Object Qdefault_directory;
  149. extern int find_file_compare_truenames;
  150. extern int find_file_use_truenames;
  151. extern Lisp_Object Fbuffer_modified_p (Lisp_Object buffer);
  152. extern Lisp_Object Fgenerate_new_buffer_name (Lisp_Object name,
  153.                                               Lisp_Object ignore);
  154. extern Lisp_Object Frename_buffer (Lisp_Object name, Lisp_Object unique);
  155.  
  156. /* Functions to call before and after each text change. */
  157. extern Lisp_Object Vbefore_change_functions;
  158. extern Lisp_Object Qbefore_change_functions;
  159. extern Lisp_Object Vafter_change_functions;
  160. extern Lisp_Object Qafter_change_functions;
  161.  
  162. /* #### Obsolete, for compatibility */
  163. extern Lisp_Object Vbefore_change_function;
  164. extern Lisp_Object Qbefore_change_function;
  165. extern Lisp_Object Vafter_change_function;
  166. extern Lisp_Object Qafter_change_function;
  167.  
  168. extern Lisp_Object Vfirst_change_hook;
  169. extern Lisp_Object Qfirst_change_hook;
  170. extern Lisp_Object Vinhibit_read_only;
  171.  
  172. extern Lisp_Object Qpermanent_local, Qprotected_field;
  173.  
  174.  
  175. /* Defined in bytecode.c */
  176. extern Lisp_Object Qbytecode;
  177. extern Lisp_Object Fbyte_code (Lisp_Object bytestr, 
  178.                                Lisp_Object constants_vector, 
  179.                                Lisp_Object maxdepth);
  180.  
  181.  
  182. /* Defined in callint.c */
  183. extern Lisp_Object Vcommand_history;
  184. extern Lisp_Object Qcall_interactively;
  185. extern Lisp_Object Fcall_interactively (Lisp_Object fn, Lisp_Object record);
  186. extern Lisp_Object Fprefix_numeric_value (Lisp_Object prefix);
  187. extern Lisp_Object Qread_from_minibuffer;
  188. extern Lisp_Object Qenable_recursive_minibuffers;
  189. extern Lisp_Object Qcompleting_read;
  190. extern Lisp_Object Qread_file_name;
  191. extern Lisp_Object Qread_directory_name;
  192. extern Lisp_Object Qread_buffer;
  193.  
  194.  
  195. /* Defined in callproc.c */
  196. extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory,
  197.            Vdoc_directory;
  198.  
  199.  
  200. /* Defined in casefiddle.c */
  201. extern Lisp_Object Fupcase (Lisp_Object obj, Lisp_Object buffer);
  202. extern Lisp_Object Fdowncase (Lisp_Object obj, Lisp_Object buffer);
  203. extern Lisp_Object Fcapitalize (Lisp_Object obj, Lisp_Object buffer);
  204. extern Lisp_Object Fupcase_region (Lisp_Object b, Lisp_Object e,
  205.                    Lisp_Object buffer);
  206. extern Lisp_Object Fdowncase_region (Lisp_Object b, Lisp_Object e,
  207.                      Lisp_Object buffer);
  208. extern Lisp_Object Fcapitalize_region (Lisp_Object b, Lisp_Object e,
  209.                        Lisp_Object buffer);
  210. extern Lisp_Object upcase_initials_region (struct buffer *buf, Lisp_Object b,
  211.                        Lisp_Object e);
  212. extern Lisp_Object Fupcase_word (Lisp_Object arg, Lisp_Object buffer);
  213. extern Lisp_Object Fdowncase_word (Lisp_Object arg, Lisp_Object buffer);
  214. extern Lisp_Object Fcapitalize_word (Lisp_Object arg, Lisp_Object buffer);
  215.  
  216. extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
  217. extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
  218.  
  219.  
  220. /* Defined in cmds.c */
  221. extern Lisp_Object Fforward_char (Lisp_Object n, Lisp_Object buffer);
  222. extern Lisp_Object Fforward_line (Lisp_Object n, Lisp_Object buffer);
  223. extern Lisp_Object Fend_of_line (Lisp_Object n, Lisp_Object buffer);
  224. extern Lisp_Object Fbeginning_of_line (Lisp_Object n, Lisp_Object buffer);
  225. extern Lisp_Object Qself_insert_command;
  226.  
  227.  
  228. /* Defined in data.c */
  229. extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qfunction, Qunbound;
  230. extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level, Qsignal;
  231. extern Lisp_Object Qerror, Qquit, Qwrong_type_argument, Qargs_out_of_range;
  232. extern Lisp_Object Qvoid_function, Qvoid_variable;
  233. extern Lisp_Object Qcyclic_function_indirection, Qcyclic_variable_indirection;
  234. extern Lisp_Object Qsetting_constant, Qinvalid_read_syntax;
  235. extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
  236. extern Lisp_Object Qend_of_file, Qarith_error;
  237. extern Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error;
  238. extern Lisp_Object Qsingularity_error, Qoverflow_error, Qunderflow_error;
  239. extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
  240.  
  241. extern Lisp_Object Qintegerp, Qnatnump, Qsymbolp, Qlistp, Qconsp;
  242. extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp, Qsubrp;
  243. extern Lisp_Object Qcharacterp, Qchar_or_string_p, Qmarkerp, Qvectorp;
  244. extern Lisp_Object Qinteger_or_marker_p, Qboundp, Qfboundp;
  245. extern Lisp_Object Qcons;
  246. extern Lisp_Object Qcdr, Qignore;
  247.  
  248. extern Lisp_Object Qnumberp, Qnumber_or_marker_p;
  249.  
  250. extern Lisp_Object Qvalues;
  251. extern Lisp_Object Qprogn, Qeval;
  252. extern Lisp_Object Qstring_or_buffer_p;
  253.  
  254. extern Lisp_Object Qfloatp;
  255. extern Lisp_Object Ftruncate (Lisp_Object n);
  256.  
  257. extern Lisp_Object Flistp (Lisp_Object x);
  258.  
  259. extern Lisp_Object Fcar (Lisp_Object cons), Fcar_safe (Lisp_Object cons);
  260. extern Lisp_Object Fcdr (Lisp_Object cons), Fcdr_safe (Lisp_Object cons);
  261. extern Lisp_Object Fsetcar (Lisp_Object cons, Lisp_Object val);
  262. extern Lisp_Object Fsetcdr (Lisp_Object cons, Lisp_Object val);
  263. extern Lisp_Object Faref (Lisp_Object array, Lisp_Object idx);
  264. extern Lisp_Object Faset (Lisp_Object array, Lisp_Object idx, Lisp_Object x);
  265. extern Lisp_Object Farray_length (Lisp_Object array);
  266. extern Lisp_Object Felt (Lisp_Object seq, Lisp_Object idx);
  267.  
  268. extern Lisp_Object Fzerop (Lisp_Object);
  269. extern Lisp_Object Fnumber_to_string (Lisp_Object num);
  270. extern Lisp_Object Fstring_to_number (Lisp_Object str);
  271.  
  272. #ifndef make_number
  273. extern Lisp_Object make_number (LISP_WORD_TYPE);
  274. #endif
  275. extern DOESNT_RETURN pure_write_error (void);
  276. extern DOESNT_RETURN args_out_of_range (Lisp_Object, Lisp_Object);
  277. extern DOESNT_RETURN args_out_of_range_3 (Lisp_Object, Lisp_Object, Lisp_Object);
  278. extern Lisp_Object wrong_type_argument (Lisp_Object pred, Lisp_Object value);
  279. extern void check_int_range (int val, int min, int max);
  280.  
  281. extern Lisp_Object word_to_lisp (unsigned int);
  282. extern unsigned int lisp_to_word (Lisp_Object);
  283.  
  284. extern Lisp_Object Fcompiled_function_instructions (Lisp_Object function);
  285. extern Lisp_Object Fcompiled_function_constants (Lisp_Object function);
  286. extern Lisp_Object Fcompiled_function_stack_depth (Lisp_Object function);
  287. extern Lisp_Object Fcompiled_function_arglist (Lisp_Object function);
  288. extern Lisp_Object Fcompiled_function_interactive (Lisp_Object function);
  289. extern Lisp_Object Fcompiled_function_domain (Lisp_Object function);
  290.  
  291. extern Lisp_Object Fquo (int nargs, Lisp_Object *args);
  292. extern Lisp_Object Fsub1 (Lisp_Object num);
  293. extern Lisp_Object Fadd1 (Lisp_Object num);
  294. extern Lisp_Object Fgtr (Lisp_Object num1, Lisp_Object num2);
  295. extern Lisp_Object Flss (Lisp_Object num1, Lisp_Object num2);
  296. extern Lisp_Object Fleq (Lisp_Object num1, Lisp_Object num2);
  297. extern Lisp_Object Fgeq (Lisp_Object num1, Lisp_Object num2);
  298. extern Lisp_Object Fminus (int nargs, Lisp_Object *args);
  299. extern Lisp_Object Fplus (int nargs, Lisp_Object *args);
  300. extern Lisp_Object Fmin (int nargs, Lisp_Object *args);
  301. extern Lisp_Object Fmax (int nargs, Lisp_Object *args);
  302. extern Lisp_Object Ftimes (int nargs, Lisp_Object *args);
  303. extern Lisp_Object Frem (Lisp_Object num1, Lisp_Object num2);
  304.  
  305.  
  306. /* Defined in device.c */
  307. extern Lisp_Object Fmake_device (Lisp_Object type, Lisp_Object device_data);
  308. extern Lisp_Object Fselect_device (Lisp_Object device);
  309. extern Lisp_Object Fdevice_enable_input (Lisp_Object device);
  310. extern Lisp_Object Fdevice_disable_input (Lisp_Object device);
  311. extern Lisp_Object Qgrayscale, Qmono;
  312.  
  313.  
  314. /* Defined in device-stream.c */
  315. extern Lisp_Object Qstream;
  316.  
  317.  
  318. /* Defined in device-tty.c */
  319. extern Lisp_Object Qtty;
  320.  
  321.  
  322. #ifdef HAVE_X_WINDOWS
  323. /* Defined in device-x.c */
  324. extern Lisp_Object Fx_display_grayscale_p (Lisp_Object device);
  325. extern Lisp_Object Fx_display_color_p (Lisp_Object device);
  326. extern Lisp_Object Fx_valid_color_name_p (Lisp_Object name,
  327.                       Lisp_Object device);
  328. extern Lisp_Object Qx;
  329. #endif
  330.  
  331.  
  332. #ifdef HAVE_NEXTSTEP
  333. /* Defined in device-ns.m */
  334. extern Lisp_Object Fns_display_grayscale_p (Lisp_Object device);
  335. extern Lisp_Object Fns_display_color_p (Lisp_Object device);
  336. extern Lisp_Object Fns_valid_color_name_p (Lisp_Object name,
  337.                        Lisp_Object device);
  338. extern Lisp_Object Qns;
  339. #endif
  340.  
  341.  
  342. /* Defined in dired.c */
  343. extern Lisp_Object make_directory_hash_table (char *path);
  344.  
  345.  
  346. /* Defined in doc.c */
  347. extern Lisp_Object Vdoc_file_name;
  348. extern Lisp_Object Fsubstitute_command_keys (Lisp_Object string);
  349. extern Lisp_Object Fdocumentation (Lisp_Object fun, Lisp_Object raw);
  350. extern Lisp_Object Fdocumentation_property (Lisp_Object sym, Lisp_Object prop,
  351.                                             Lisp_Object raw);
  352.  
  353.  
  354. /* Defined in doprnt.c */
  355. extern Bytecount emacs_doprnt_c (Lisp_Object stream,
  356.                  CONST Bufbyte *format_nonreloc,
  357.                  Lisp_Object format_reloc,
  358.                  Bytecount format_length,
  359.                  ...);
  360. extern Bytecount emacs_doprnt_va (Lisp_Object stream,
  361.                   CONST Bufbyte *format_nonreloc,
  362.                   Lisp_Object format_reloc,
  363.                   Bytecount format_length,
  364.                   va_list vargs);
  365. extern Bytecount emacs_doprnt_lisp (Lisp_Object stream,
  366.                     CONST Bufbyte *format_nonreloc,
  367.                     Lisp_Object format_reloc,
  368.                     Bytecount format_length,
  369.                     int nargs, CONST Lisp_Object *largs);
  370. extern Lisp_Object emacs_doprnt_string_c (CONST Bufbyte *format_nonreloc,
  371.                       Lisp_Object format_reloc,
  372.                       Bytecount format_length,
  373.                       ...);
  374. extern Lisp_Object emacs_doprnt_string_va (CONST Bufbyte *format_nonreloc,
  375.                        Lisp_Object format_reloc,
  376.                        Bytecount format_length,
  377.                        va_list vargs);
  378. extern Lisp_Object emacs_doprnt_string_lisp (CONST Bufbyte *format_nonreloc,
  379.                          Lisp_Object format_reloc,
  380.                          Bytecount format_length,
  381.                          int nargs,
  382.                          CONST Lisp_Object *largs);
  383.  
  384.  
  385. /* Defined in editfns.c */
  386. extern Bufpos bufpos_clip_to_bounds (Bufpos lower, Bufpos num, Bufpos upper);
  387. extern Bytind bytind_clip_to_bounds (Bytind lower, Bytind num, Bytind upper);
  388. extern Lisp_Object time_to_lisp (time_t the_time);
  389. extern int lisp_to_time (Lisp_Object specified_time, time_t *result);
  390. extern Lisp_Object Fwiden (Lisp_Object buffer);
  391. extern Lisp_Object Fnarrow_to_region (Lisp_Object b, Lisp_Object e,
  392.                       Lisp_Object buffer);
  393. extern Lisp_Object Vprefix_arg, Vcurrent_prefix_arg;
  394. extern Lisp_Object Qcurrent_prefix_arg;
  395. extern Lisp_Object Fgoto_char (Lisp_Object pos, Lisp_Object buffer);
  396. extern Lisp_Object Fpoint_min_marker (Lisp_Object buffer);
  397. extern Lisp_Object Fpoint_max_marker (Lisp_Object buffer);
  398. extern Lisp_Object Fpoint_min (Lisp_Object buffer);
  399. extern Lisp_Object Fpoint_max (Lisp_Object buffer);
  400. extern Lisp_Object Fpoint (Lisp_Object buffer);
  401. extern Lisp_Object Fpoint_marker (Lisp_Object dont_copy_p, Lisp_Object buffer);
  402. extern Lisp_Object Fmark_marker (Lisp_Object inactive_p, Lisp_Object buffer);
  403. extern Lisp_Object Ffollowing_char (Lisp_Object buffer);
  404. extern Lisp_Object Fprevious_char (Lisp_Object buffer);
  405. extern Lisp_Object Fchar_after (Lisp_Object pos, Lisp_Object buffer);
  406. extern Lisp_Object Finsert (int nargs, Lisp_Object *args);
  407. extern Lisp_Object Finsert_char (Lisp_Object ch, Lisp_Object count,
  408.                  Lisp_Object ignored);
  409. extern void buffer_insert1 (struct buffer *buf, Lisp_Object arg);
  410. extern Lisp_Object Finsert_before_markers (int nargs, Lisp_Object *args);
  411. extern Lisp_Object Finsert_buffer_substring (Lisp_Object buffer, 
  412.                                              Lisp_Object b, Lisp_Object e);
  413. extern Lisp_Object Fdelete_region (Lisp_Object b, Lisp_Object e,
  414.                    Lisp_Object buffer);
  415. extern Lisp_Object Feolp (Lisp_Object buffer);
  416. extern Lisp_Object Feobp (Lisp_Object buffer);
  417. extern Lisp_Object Fbolp (Lisp_Object buffer);
  418. extern Lisp_Object Fbobp (Lisp_Object buffer);
  419. extern Lisp_Object Fformat (int nargs, Lisp_Object *args);
  420. extern Lisp_Object Fbuffer_substring (Lisp_Object start, Lisp_Object end,
  421.                       Lisp_Object buffer);
  422. extern Lisp_Object make_string_from_buffer (struct buffer *buf,
  423.                                             int pos, int length);
  424. extern Lisp_Object save_excursion_save (void), save_restriction_save (void);
  425. extern Lisp_Object save_excursion_restore (Lisp_Object info);
  426. extern Lisp_Object save_restriction_restore (Lisp_Object info);
  427. extern Lisp_Object Fchar_to_string (Lisp_Object ch);
  428. extern Lisp_Object Fcurrent_time_seconds (Lisp_Object cons);
  429. extern Lisp_Object Fgetenv (Lisp_Object var, Lisp_Object interactivep);
  430. extern Lisp_Object Qpoint, Qmark, Qregion_beginning, Qregion_end;
  431. extern Lisp_Object Qformat;
  432.  
  433.  
  434. /* Defined in elhash.c */
  435. extern Lisp_Object Fhashtablep (Lisp_Object obj);
  436. extern Lisp_Object Fmake_hashtable (Lisp_Object size);
  437. extern Lisp_Object Fcopy_hashtable (Lisp_Object old_table);
  438. extern Lisp_Object Fgethash (Lisp_Object key, Lisp_Object table,
  439.                              Lisp_Object def);
  440. extern Lisp_Object Fremhash (Lisp_Object key, Lisp_Object table);
  441. extern Lisp_Object Fputhash (Lisp_Object key, Lisp_Object val,
  442.                              Lisp_Object table);
  443. extern Lisp_Object Fclrhash (Lisp_Object table);
  444. extern Lisp_Object Fhashtable_fullness (Lisp_Object table);
  445. extern Lisp_Object Fmaphash (Lisp_Object function, Lisp_Object table);
  446.  
  447. extern Lisp_Object Vcharacter_set_property;
  448.  
  449.  
  450. /* Defined in emacs.c */
  451. extern DOESNT_RETURN fatal (CONST char *fmt, ...); /* ... printf args */
  452. extern DOESNT_RETURN error (CONST char *fmt, ...); /* ... printf args */
  453. extern int stderr_out (CONST char *fmt, ...);      /* ... printf args */
  454. extern int stdout_out (CONST char *fmt, ...);      /* ... printf args */
  455. extern Lisp_Object continuable_error (CONST char *fmt, ...); /* printf args */
  456. extern SIGTYPE fatal_error_signal (int sig);
  457. extern Lisp_Object make_arg_list (int argc, char **argv);
  458. extern void make_argc_argv (Lisp_Object argv_list, int *argc, char ***argv);
  459. extern void free_argc_argv (char **argv);
  460. extern Lisp_Object decode_env_path (CONST char *evarname, CONST char *def);
  461. /* Nonzero means don't do interactive redisplay and don't change tty modes */
  462. extern int noninteractive;
  463. extern Lisp_Object Fkill_emacs (Lisp_Object arg);
  464.  
  465. extern Lisp_Object Vcommand_line_args;
  466. extern Lisp_Object Vinvocation_name;
  467. extern Lisp_Object Vinvocation_directory;
  468.  
  469. extern int emacs_priority;
  470. extern int suppress_early_backtrace;
  471.  
  472. extern Lisp_Object Qsave_buffers_kill_emacs;
  473. extern Lisp_Object Qkill_emacs_hook;
  474.  
  475.  
  476. /* Defined in eval.c */
  477. extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro;
  478. extern Lisp_Object Vinhibit_quit, Vquit_flag, Qinhibit_quit;
  479. extern Lisp_Object Vautoload_queue;
  480. extern Lisp_Object Vrun_hooks;
  481. extern Lisp_Object Fuser_variable_p (Lisp_Object);
  482. extern Lisp_Object Finteractive_p (void);
  483. extern DOESNT_RETURN signal_error (Lisp_Object sig, Lisp_Object data);
  484. extern DOESNT_RETURN signal_simple_error (CONST char *, Lisp_Object);
  485. extern DOESNT_RETURN signal_simple_error_2 (CONST char *,
  486.                         Lisp_Object, Lisp_Object);
  487. extern Lisp_Object signal_simple_continuable_error (CONST char *,
  488.                               Lisp_Object);
  489. extern Lisp_Object signal_simple_continuable_error_2 (CONST char *,
  490.                               Lisp_Object,
  491.                               Lisp_Object);
  492. extern Lisp_Object Fprogn (Lisp_Object args);
  493. extern Lisp_Object Fcommandp (Lisp_Object obj);
  494. extern Lisp_Object Feval (Lisp_Object form);
  495. extern Lisp_Object Fapply (int nargs, Lisp_Object *args);
  496. extern Lisp_Object Ffuncall (int nargs, Lisp_Object *args);
  497. extern Lisp_Object Fbacktrace (Lisp_Object stream, Lisp_Object detailed);
  498. extern Lisp_Object apply1 (Lisp_Object fn, Lisp_Object args);
  499. extern Lisp_Object call0 (Lisp_Object fn);
  500. extern Lisp_Object call1 (Lisp_Object fn, Lisp_Object a0);
  501. extern Lisp_Object call2 (Lisp_Object fn, Lisp_Object a0, Lisp_Object a1);
  502. extern Lisp_Object call3 (Lisp_Object fn,
  503.                           Lisp_Object a0, Lisp_Object a1, Lisp_Object a2);
  504. extern Lisp_Object call4 (Lisp_Object fn,
  505.                           Lisp_Object a0, Lisp_Object a1, Lisp_Object a2,
  506.                           Lisp_Object a3);
  507. extern Lisp_Object call5 (Lisp_Object fn,
  508.                           Lisp_Object a0, Lisp_Object a1, Lisp_Object a2,
  509.                           Lisp_Object a3, Lisp_Object a4);
  510. extern Lisp_Object call6 (Lisp_Object fn,
  511.                           Lisp_Object a0, Lisp_Object a1, Lisp_Object a2,
  512.                           Lisp_Object a3, Lisp_Object a4, Lisp_Object a5);
  513. extern Lisp_Object call0_in_buffer (struct buffer *buf, Lisp_Object fn);
  514. extern Lisp_Object call1_in_buffer (struct buffer *buf, Lisp_Object fn,
  515.                     Lisp_Object a0);
  516. extern Lisp_Object call2_in_buffer (struct buffer *buf, Lisp_Object fn,
  517.                     Lisp_Object a0, Lisp_Object a1);
  518. extern Lisp_Object call3_in_buffer (struct buffer *buf, Lisp_Object fn,
  519.                     Lisp_Object a0, Lisp_Object a1,
  520.                     Lisp_Object a2);
  521. extern Lisp_Object call4_in_buffer (struct buffer *buf, Lisp_Object fn,
  522.                     Lisp_Object a0, Lisp_Object a1,
  523.                     Lisp_Object a2, Lisp_Object a3);
  524. extern Lisp_Object call5_in_buffer (struct buffer *buf, Lisp_Object fn,
  525.                     Lisp_Object a0, Lisp_Object a1,
  526.                     Lisp_Object a2, Lisp_Object a3,
  527.                     Lisp_Object a4);
  528. extern Lisp_Object call6_in_buffer (struct buffer *buf, Lisp_Object fn,
  529.                     Lisp_Object a0, Lisp_Object a1,
  530.                     Lisp_Object a2, Lisp_Object a3,
  531.                     Lisp_Object a4, Lisp_Object a5);
  532. extern Lisp_Object eval_in_buffer (struct buffer *buf, Lisp_Object form);
  533. extern Lisp_Object call0_with_handler (Lisp_Object handler, Lisp_Object fn);
  534. extern Lisp_Object call1_with_handler (Lisp_Object handler, Lisp_Object fn,
  535.                        Lisp_Object a0);
  536. extern Lisp_Object eval_in_buffer_trapping_errors (char *warning_string,
  537.                            struct buffer *buf,
  538.                            Lisp_Object form);
  539. extern Lisp_Object run_hook_trapping_errors (char *warning_string,
  540.                          Lisp_Object hook_symbol);
  541. extern Lisp_Object call0_trapping_errors (char *warning_string,
  542.                       Lisp_Object function);
  543. extern Lisp_Object call1_trapping_errors (char *warning_string,
  544.                       Lisp_Object function,
  545.                       Lisp_Object object);
  546. extern Lisp_Object Fsignal (Lisp_Object signame, Lisp_Object data);
  547. /* C Code should be using internal_catch, record_unwind_p, condition_case_1 */
  548. /* extern Lisp_Object Fcatch (Lisp_Object args); */
  549. /* extern Lisp_Object Funwind_protect (Lisp_Object args); */
  550. /* extern Lisp_Object Fcondition_case (Lisp_Object args); */
  551. extern Lisp_Object Fthrow (Lisp_Object tag, Lisp_Object val);
  552. extern Lisp_Object internal_catch (Lisp_Object tag, 
  553.                                    Lisp_Object (*func) (Lisp_Object arg),
  554.                                    Lisp_Object arg,
  555.                                    int *threw);
  556. extern Lisp_Object condition_case_1 (Lisp_Object handlers,
  557.                                      Lisp_Object (*bfun) (Lisp_Object barg),
  558.                                      Lisp_Object barg,
  559.                                      Lisp_Object (*hfun) (Lisp_Object val,
  560.                                                           Lisp_Object harg),
  561.                                      Lisp_Object harg);
  562. extern Lisp_Object Fcondition_case_3 (Lisp_Object bodyform, 
  563.                                       Lisp_Object var, 
  564.                                       Lisp_Object handlers);
  565. extern Lisp_Object unbind_to (int n, Lisp_Object val);
  566. extern void specbind (Lisp_Object symbol, Lisp_Object value);
  567. extern void record_unwind_protect (Lisp_Object (*function) (Lisp_Object arg),
  568.                                    Lisp_Object arg);
  569. extern void do_autoload (Lisp_Object fundef, Lisp_Object funname);
  570. extern Lisp_Object un_autoload (Lisp_Object oldqueue);
  571. extern void warn_when_safe_lispstr (Lisp_Object class, Lisp_Object level,
  572.                     Lisp_Object str);
  573. extern void warn_when_safe (Lisp_Object class, Lisp_Object level,
  574.                 CONST char *fmt, ...);
  575.  
  576.  
  577. /* Defined in event-stream.c */
  578. extern Lisp_Object Qemacs_handle_focus_change;
  579. extern Lisp_Object Fread_key_sequence (Lisp_Object prompt);
  580. extern Lisp_Object Fsit_for (Lisp_Object seconds, Lisp_Object nodisp);
  581. extern Lisp_Object Fsleep_for (Lisp_Object seconds);
  582. extern Lisp_Object Faccept_process_output (Lisp_Object process,
  583.                        Lisp_Object timeout_secs,
  584.                        Lisp_Object timeout_msecs);
  585. extern Lisp_Object Fnext_event (Lisp_Object event, Lisp_Object prompt);
  586. extern Lisp_Object Fnext_command_event (Lisp_Object event, Lisp_Object prompt);
  587. extern Lisp_Object Fdispatch_event (Lisp_Object event);
  588. extern void wait_delaying_user_input (int (*predicate) (void *arg),
  589.                                       void *predicate_arg);
  590. extern int detect_input_pending (void);
  591. extern void enqueue_command_event (Lisp_Object event);
  592. extern Lisp_Object Femacs_handle_focus_change (Lisp_Object frame_inp_and_dev);
  593. extern Lisp_Object dequeue_command_event (void);
  594. extern void enqueue_event (Lisp_Object event, Lisp_Object *head,
  595.                struct Lisp_Event **tail);
  596. extern Lisp_Object dequeue_event (Lisp_Object *head,
  597.                   struct Lisp_Event **tail);
  598. extern Lisp_Object Fadd_timeout (Lisp_Object secs, 
  599.                                  Lisp_Object function, Lisp_Object object, 
  600.                                  Lisp_Object resignal);
  601. extern Lisp_Object Fdisable_timeout (Lisp_Object id); 
  602. extern Lisp_Object reset_this_command_keys (Lisp_Object reset_key_echo);
  603. extern Lisp_Object Fenqueue_eval_event (Lisp_Object function,
  604.                     Lisp_Object object);
  605. extern Lisp_Object enqueue_misc_user_event (Lisp_Object function,
  606.                         Lisp_Object object);
  607.  
  608.  
  609. /* Defined in event-Xt.c */
  610.  
  611. extern void signal_special_Xt_user_event (Lisp_Object function,
  612.                       Lisp_Object object);
  613.  
  614.  
  615. /* Defined in events.c */
  616. extern void clear_event_resource (void);
  617. extern Lisp_Object Fallocate_event (void);
  618. extern Lisp_Object Fdeallocate_event (Lisp_Object event);
  619. extern Lisp_Object Fcopy_event (Lisp_Object from, Lisp_Object to);
  620. extern Lisp_Object make_event (void);
  621. extern int event_to_character (struct Lisp_Event *event,
  622.                    int allow_extra_modifiers,
  623.                    int allow_meta,
  624.                    int allow_non_ascii);
  625. extern Lisp_Object Fcharacter_to_event (Lisp_Object ch, Lisp_Object event,
  626.                     Lisp_Object device);
  627. extern Lisp_Object Fevent_to_character (Lisp_Object e,
  628.                     Lisp_Object allow_extra_modifiers,
  629.                     Lisp_Object allow_meta,
  630.                     Lisp_Object allow_non_ascii);
  631. extern Lisp_Object Fevent_over_text_area_p (Lisp_Object event);
  632. extern Lisp_Object Fevent_over_modeline_p (Lisp_Object event);
  633. extern Lisp_Object Fevent_over_border_p (Lisp_Object event);
  634. extern Lisp_Object Fevent_over_toolbar_p (Lisp_Object event);
  635. extern Lisp_Object Fevent_window (Lisp_Object event);
  636. extern Lisp_Object Fevent_buffer (Lisp_Object event);
  637. extern Lisp_Object Fevent_frame (Lisp_Object event);
  638. extern Lisp_Object Fevent_button (Lisp_Object event);
  639. extern Lisp_Object Fevent_function (Lisp_Object event);
  640. extern Lisp_Object Fevent_glyph_extent (Lisp_Object event);
  641. extern Lisp_Object Fevent_key (Lisp_Object event);
  642. extern Lisp_Object Fevent_modifiers (Lisp_Object event);
  643. extern Lisp_Object Fevent_modifier_bits (Lisp_Object event);
  644. extern Lisp_Object Fevent_object (Lisp_Object event);
  645. extern Lisp_Object Fevent_point (Lisp_Object event);
  646. extern Lisp_Object Fevent_process (Lisp_Object event);
  647. extern Lisp_Object Fevent_timestamp (Lisp_Object event);
  648. extern Lisp_Object Fevent_x (Lisp_Object event);
  649. extern Lisp_Object Fevent_y (Lisp_Object event);
  650. extern Lisp_Object Fevent_x_pixel (Lisp_Object event);
  651. extern Lisp_Object Fevent_y_pixel (Lisp_Object event);
  652.  
  653. extern Lisp_Object QKbackspace, QKtab, QKlinefeed, QKreturn;
  654. extern Lisp_Object QKescape, QKspace, QKdelete, QKnosymbol;
  655.  
  656.  
  657. /* Defined in extents.c */
  658. extern Lisp_Object Fextentp (Lisp_Object obj);
  659. extern Lisp_Object Fextent_object (Lisp_Object ext);
  660. extern Lisp_Object Fextent_start_position (Lisp_Object ext);
  661. extern Lisp_Object Fextent_end_position (Lisp_Object ext);
  662. extern Lisp_Object Fextent_length (Lisp_Object ext);
  663. extern Lisp_Object Fmake_extent (Lisp_Object from, Lisp_Object to,
  664.                                  Lisp_Object buffer);
  665. extern Lisp_Object Fset_extent_endpoints (Lisp_Object,
  666.                       Lisp_Object, Lisp_Object);
  667. extern Lisp_Object Fdelete_extent (Lisp_Object extent);
  668. extern Lisp_Object Fdetach_extent (Lisp_Object);
  669. extern Lisp_Object Fmap_extents (Lisp_Object function, 
  670.                                  Lisp_Object buffer, 
  671.                                  Lisp_Object from, Lisp_Object to,
  672.                                  Lisp_Object maparg,
  673.                                  Lisp_Object flags,
  674.                  Lisp_Object property,
  675.                  Lisp_Object value);
  676. extern Lisp_Object Fextent_at (Lisp_Object pos, Lisp_Object buffer, 
  677.                                Lisp_Object flag, Lisp_Object before);
  678. extern Lisp_Object Fset_extent_begin_glyph (Lisp_Object extent,
  679.                         Lisp_Object begin_glyph,
  680.                         Lisp_Object layout);
  681. extern Lisp_Object Fset_extent_end_glyph (Lisp_Object extent_obj,
  682.                       Lisp_Object glyph,
  683.                       Lisp_Object layout);
  684. extern Lisp_Object Fset_extent_begin_glyph_layout (Lisp_Object extent,
  685.                            Lisp_Object layout);
  686. extern Lisp_Object Fset_extent_end_glyph_layout (Lisp_Object extent,
  687.                            Lisp_Object layout);
  688. extern Lisp_Object Fextent_begin_glyph_layout (Lisp_Object extent);
  689. extern Lisp_Object Fextent_end_glyph_layout (Lisp_Object extent);
  690. extern Lisp_Object Fset_extent_priority (Lisp_Object extent, Lisp_Object pri);
  691. extern Lisp_Object Fset_extent_property (Lisp_Object,Lisp_Object,Lisp_Object);
  692. extern Lisp_Object Fextent_property (Lisp_Object extent, Lisp_Object);
  693. extern Lisp_Object Fforce_highlight_extent (Lisp_Object extent,
  694.                                             Lisp_Object flag);
  695. extern Lisp_Object Fhighlight_extent (Lisp_Object extent, Lisp_Object flag);
  696. extern Lisp_Object Fextent_replica_p (Lisp_Object object);
  697. extern Lisp_Object Fextent_replica_extent (Lisp_Object extent_replica);
  698. extern Lisp_Object Fextent_replica_start (Lisp_Object extent_replica);
  699. extern Lisp_Object Fextent_replica_end (Lisp_Object extent_replica);
  700.  
  701. extern Lisp_Object Fnext_single_property_change (Lisp_Object pos,
  702.                          Lisp_Object prop,
  703.                          Lisp_Object buffer,
  704.                          Lisp_Object limit);
  705. extern Lisp_Object Fprevious_single_property_change (Lisp_Object pos,
  706.                              Lisp_Object prop,
  707.                              Lisp_Object buffer,
  708.                              Lisp_Object limit);
  709. extern Lisp_Object Qdetached, Qdestroyed, Qbegin_glyph, Qend_glyph;
  710. extern Lisp_Object Qstart_open, Qend_open, Qread_only;
  711. extern Lisp_Object Qunique, Qduplicable, Qinvisible;
  712. extern Lisp_Object Qoutside_margin, Qinside_margin, Qwhitespace;
  713. extern Lisp_Object Qglyph_invisible;
  714.  
  715. extern Lisp_Object Qdup_list;
  716.  
  717.  
  718. /* Defined in faces.c */
  719. extern Lisp_Object Qface, Qextent_face, Qset_extent_face;
  720. extern Lisp_Object Fextent_face (Lisp_Object);
  721. extern Lisp_Object Fset_extent_face (Lisp_Object, Lisp_Object);
  722.  
  723.  
  724. /* Defined in fileio.c */
  725. extern Lisp_Object Qfile_name_handler_alist;
  726. extern Lisp_Object Qfile_error;
  727. extern Lisp_Object Ffile_name_as_directory (Lisp_Object fn);
  728. extern Lisp_Object Fexpand_file_name (Lisp_Object fn, Lisp_Object def);
  729. extern Lisp_Object Ffile_name_nondirectory (Lisp_Object fn);
  730. extern Lisp_Object Fsubstitute_in_file_name (Lisp_Object fn);
  731. extern Lisp_Object Ffile_symlink_p (Lisp_Object fn);
  732. extern Lisp_Object Ffile_truename (Lisp_Object name, Lisp_Object def);
  733. extern Lisp_Object Ffile_name_nondirectory (Lisp_Object fn);
  734. extern Lisp_Object Ffile_name_directory (Lisp_Object fn);
  735. extern Lisp_Object Fdirectory_file_name (Lisp_Object fn);
  736. extern Lisp_Object Ffile_directory_p (Lisp_Object fn);
  737. extern Lisp_Object Ffile_readable_p (Lisp_Object fn);
  738. extern Lisp_Object Ffile_name_absolute_p (Lisp_Object fn);
  739. extern Lisp_Object Ffile_exists_p (Lisp_Object fn);
  740. extern Lisp_Object Ffile_executable_p (Lisp_Object filename);
  741. extern Lisp_Object Ffile_accessible_directory_p (Lisp_Object fn);
  742. extern void record_auto_save (void);
  743. extern void force_auto_save_soon (void);
  744. extern Lisp_Object Ffind_file_name_handler (Lisp_Object filename,
  745.                                             Lisp_Object operation);
  746. extern DOESNT_RETURN report_file_error (CONST char *string, Lisp_Object data);
  747. extern DOESNT_RETURN signal_file_error (CONST char *string, Lisp_Object data);
  748. extern DOESNT_RETURN signal_double_file_error (CONST char *string1,
  749.                            CONST char *string2,
  750.                            Lisp_Object data);
  751. extern DOESNT_RETURN signal_double_file_error_2 (CONST char *string1,
  752.                          CONST char *string2,
  753.                          Lisp_Object data1,
  754.                          Lisp_Object data2);
  755. extern Lisp_Object expand_and_dir_to_file (Lisp_Object fn, Lisp_Object def);
  756. extern Lisp_Object Finsert_file_contents_internal (Lisp_Object filename,
  757.                            Lisp_Object visit,
  758.                            Lisp_Object beg,
  759.                            Lisp_Object end,
  760.                            Lisp_Object replace);
  761. extern Lisp_Object Fwrite_region_intrenal (Lisp_Object start, Lisp_Object end,
  762.                        Lisp_Object filename, 
  763.                        Lisp_Object append,
  764.                        Lisp_Object visit);
  765. extern Lisp_Object Fdo_auto_save (Lisp_Object nomsg, Lisp_Object current_only);
  766. extern Lisp_Object Fverify_visited_file_modtime (Lisp_Object buffer);
  767. extern Lisp_Object Funhandled_file_name_directory (Lisp_Object filename);
  768. extern Lisp_Object Fset_buffer_modtime (Lisp_Object buf, Lisp_Object in_time);
  769. extern int read_allowing_quit (int fildes, void *buf, unsigned int nbyte);
  770. extern int write_allowing_quit (int fildes, CONST void *buf,
  771.                 unsigned int nbyte);
  772.  
  773.  
  774. /* Defined in filelock.c */
  775. extern void lock_file (Lisp_Object fn);
  776. extern void unlock_file (Lisp_Object fn);
  777. extern void unlock_all_files (void);
  778. extern Lisp_Object Flock_buffer (Lisp_Object fn);
  779. extern Lisp_Object Funlock_buffer (void);
  780. extern void unlock_buffer (struct buffer *buffer);
  781. extern Lisp_Object Ffile_locked_p (Lisp_Object fn);
  782.  
  783.  
  784. /* Defined in filemode.c */
  785. extern void filemodestring (struct stat *statp, char *str);
  786.  
  787.  
  788. /* Defined in floatfns.c */
  789. extern double extract_float (Lisp_Object);
  790. extern Lisp_Object Ffloat (Lisp_Object n);
  791.  
  792.  
  793. /* Defined in fns.c */
  794. extern Lisp_Object list_sort (Lisp_Object list, 
  795.                               Lisp_Object lisp_arg,
  796.                               int (*pred_fn) (Lisp_Object first,
  797.                                               Lisp_Object second,
  798.                                               Lisp_Object lisp_arg));
  799. extern Lisp_Object Fsort (Lisp_Object list, 
  800.                           Lisp_Object pred);
  801. extern Lisp_Object merge (Lisp_Object org_l1, Lisp_Object org_l2,
  802.                           Lisp_Object pred);
  803.  
  804. extern void run_hook_with_args (Lisp_Object hook_var, int nargs, ...);
  805.  
  806. extern Lisp_Object Qstring_lessp, Qidentity, Qyes_or_no_p;
  807. extern Lisp_Object Vfeatures;
  808. extern Lisp_Object Fidentity (Lisp_Object x);
  809. extern Lisp_Object Frandom (Lisp_Object arg);
  810. extern Lisp_Object Flength (Lisp_Object seq);
  811. extern Lisp_Object Fstring_equal (Lisp_Object s1, Lisp_Object s2);
  812. extern Lisp_Object Fstring_lessp (Lisp_Object s1, Lisp_Object s2);
  813. extern Lisp_Object string_getprop (struct Lisp_String *s,
  814.                    Lisp_Object property,
  815.                    Lisp_Object defalt);
  816. extern void string_putprop (struct Lisp_String *s, Lisp_Object property,
  817.                 Lisp_Object value);
  818. void bump_string_modiff (Lisp_Object str);
  819. extern Lisp_Object Fappend (int nargs, Lisp_Object *args);
  820. extern Lisp_Object Fconcat (int nargs, Lisp_Object *args);
  821. extern Lisp_Object Fvconcat (int nargs, Lisp_Object *args);
  822. extern Lisp_Object Fcopy_sequence (Lisp_Object seq);
  823. extern Lisp_Object Fsubstring (Lisp_Object str, Lisp_Object s, Lisp_Object e);
  824. extern Bytecount get_string_range (Lisp_Object string,
  825.                        Lisp_Object from, Lisp_Object to,
  826.                        Bytecount *from_out,
  827.                        Bytecount *to_out);
  828. extern Bytecount get_string_bytepos (Lisp_Object string, Lisp_Object pos);
  829. extern Lisp_Object Fnthcdr (Lisp_Object n, Lisp_Object list);
  830. extern Lisp_Object Fnth (Lisp_Object n, Lisp_Object list);
  831. extern Lisp_Object Fmember (Lisp_Object elt, Lisp_Object list);
  832. extern Lisp_Object Fmemq (Lisp_Object elt, Lisp_Object list);
  833. extern Lisp_Object memq_no_quit (Lisp_Object elt, Lisp_Object list);
  834. extern Lisp_Object Fassoc (Lisp_Object elt, Lisp_Object list);
  835. extern Lisp_Object assoc_no_quit (Lisp_Object key, Lisp_Object alist);
  836. extern Lisp_Object Fassq (Lisp_Object key, Lisp_Object alist);
  837. extern Lisp_Object assq_no_quit (Lisp_Object key, Lisp_Object alist);
  838. extern Lisp_Object Frassoc (Lisp_Object key, Lisp_Object alist);
  839. extern Lisp_Object Frassq (Lisp_Object key, Lisp_Object alist);
  840. extern Lisp_Object rassq_no_quit (Lisp_Object key, Lisp_Object alist);
  841. extern Lisp_Object Fdelete (Lisp_Object elt, Lisp_Object list);
  842. extern Lisp_Object Fdelq (Lisp_Object elt, Lisp_Object list);
  843. extern Lisp_Object delq_no_quit (Lisp_Object elt, Lisp_Object list);
  844. extern Lisp_Object Fremassoc (Lisp_Object elt, Lisp_Object list);
  845. extern Lisp_Object remassoc_no_quit (Lisp_Object key, Lisp_Object list);
  846. extern Lisp_Object Fremassq (Lisp_Object key, Lisp_Object alist);
  847. extern Lisp_Object remassq_no_quit (Lisp_Object key, Lisp_Object alist);
  848. extern Lisp_Object Fremrassoc (Lisp_Object key, Lisp_Object alist);
  849. extern Lisp_Object Fremrassq (Lisp_Object key, Lisp_Object alist);
  850. extern Lisp_Object remrassq_no_quit (Lisp_Object key, Lisp_Object alist);
  851. extern Lisp_Object Freverse (Lisp_Object list), Fnreverse (Lisp_Object list);
  852. extern Lisp_Object Fget (Lisp_Object sym, Lisp_Object prop, Lisp_Object def);
  853. extern Lisp_Object Fput (Lisp_Object sym, Lisp_Object prop, Lisp_Object val);
  854.  
  855. extern void pure_put (Lisp_Object sym, Lisp_Object prop, Lisp_Object val);
  856. extern Lisp_Object Fremprop (Lisp_Object sym, Lisp_Object prop);
  857. extern int plists_differ (Lisp_Object a, Lisp_Object b, int depth);
  858. extern int internal_getf (Lisp_Object plist, Lisp_Object property,
  859.               Lisp_Object *value_out);
  860. extern void internal_putf (Lisp_Object *plist, Lisp_Object property,
  861.                Lisp_Object value);
  862. extern int internal_remprop (Lisp_Object *plist, Lisp_Object property);
  863. extern Lisp_Object Fequal (Lisp_Object one, Lisp_Object two);
  864. extern int internal_equal (Lisp_Object, Lisp_Object, int depth);
  865. extern Lisp_Object Ffillarray (Lisp_Object array, Lisp_Object init);
  866. extern Lisp_Object Fnconc (int nargs, Lisp_Object *args);
  867. extern Lisp_Object Fmapcar (Lisp_Object fn, Lisp_Object seq);
  868. extern Lisp_Object Ffeaturep (Lisp_Object name);
  869. extern Lisp_Object Frequire (Lisp_Object name, Lisp_Object filename);
  870. extern Lisp_Object Fprovide (Lisp_Object name);
  871. extern Lisp_Object concat2 (Lisp_Object s1, Lisp_Object s2);
  872. extern Lisp_Object vconcat2 (Lisp_Object s1, Lisp_Object s2);
  873. extern Lisp_Object nconc2 (Lisp_Object l1, Lisp_Object l2);
  874. extern Lisp_Object Fcopy_alist (Lisp_Object alist);
  875. extern Lisp_Object Fcopy_tree (Lisp_Object arg, Lisp_Object vecp);
  876.  
  877.  
  878. /* Defined in font-lock.c */
  879. extern Lisp_Object Qcomment, Qblock_comment;
  880. extern Lisp_Object Qbeginning_of_defun, Qend_of_defun;
  881.  
  882.  
  883. /* Defined in frame.c */
  884. extern Lisp_Object Fframep (Lisp_Object obj);
  885. extern Lisp_Object Fframe_live_p (Lisp_Object obj);
  886. extern Lisp_Object Fselect_frame (Lisp_Object scr);
  887. extern Lisp_Object Fselected_frame (Lisp_Object device);
  888. extern Lisp_Object Fmake_frame (Lisp_Object parameters, Lisp_Object device);
  889. extern Lisp_Object Fwindow_frame (Lisp_Object window);
  890. extern Lisp_Object Fframe_root_window (Lisp_Object frame);
  891. extern Lisp_Object Fframe_selected_window (Lisp_Object frame);
  892. extern Lisp_Object Fframe_lowest_window (Lisp_Object frame,
  893.                      Lisp_Object offset);
  894. extern Lisp_Object Fframe_highest_window (Lisp_Object frame,
  895.                       Lisp_Object offset);
  896. extern Lisp_Object Fframe_list (Lisp_Object device);
  897. extern Lisp_Object Fframe_name (Lisp_Object frame);
  898. extern Lisp_Object Fnext_frame (Lisp_Object frame, 
  899.                                  Lisp_Object miniframe);
  900. extern Lisp_Object Fmouse_position (Lisp_Object device);
  901. extern Lisp_Object Fmouse_pixel_position (Lisp_Object device);
  902. extern Lisp_Object Fset_mouse_position (Lisp_Object window,
  903.                                         Lisp_Object x, Lisp_Object y);
  904. extern Lisp_Object Fset_mouse_pixel_position (Lisp_Object window,
  905.                           Lisp_Object x, Lisp_Object y);
  906. extern Lisp_Object Fmake_frame_visible (Lisp_Object frame);
  907. extern Lisp_Object Fmake_frame_invisible (Lisp_Object frame,
  908.                       Lisp_Object ignored);
  909. extern Lisp_Object Ficonify_frame (Lisp_Object frame);
  910. extern Lisp_Object Fdeiconify_frame (Lisp_Object frame);
  911. extern Lisp_Object Fframe_visible_p (Lisp_Object frame);
  912. extern Lisp_Object Fframe_iconified_p (Lisp_Object frame);
  913. extern Lisp_Object Fvisible_frame_list (Lisp_Object device);
  914. extern Lisp_Object Fframe_parameters (Lisp_Object frame);
  915. extern Lisp_Object Fmodify_frame_parameters (Lisp_Object frame,
  916.                                               Lisp_Object alist);
  917. extern Lisp_Object Fframe_height (Lisp_Object frame);
  918. extern Lisp_Object Fframe_width (Lisp_Object frame);
  919. extern Lisp_Object Fset_frame_height (Lisp_Object frame,
  920.                                        Lisp_Object rows, Lisp_Object pretend);
  921. extern Lisp_Object Fset_frame_width  (Lisp_Object frame,
  922.                                        Lisp_Object cols, Lisp_Object pretend);
  923. extern Lisp_Object Fset_frame_size (Lisp_Object frame, 
  924.                                      Lisp_Object cols, Lisp_Object rows, 
  925.                                      Lisp_Object pretend);
  926. extern Lisp_Object Fset_frame_position (Lisp_Object frame,
  927.                                          Lisp_Object xoffset, 
  928.                                          Lisp_Object yoffset);
  929. extern Lisp_Object Vdefault_minibuffer_frame;
  930.  
  931. extern Lisp_Object Vcreate_frame_hook, Qcreate_frame_hook;
  932. extern Lisp_Object Vmouse_enter_frame_hook, Qmouse_enter_frame_hook;
  933. extern Lisp_Object Vmouse_leave_frame_hook, Qmouse_leave_frame_hook;
  934. extern Lisp_Object Vmap_frame_hook, Qmap_frame_hook;
  935. extern Lisp_Object Vunmap_frame_hook, Qunmap_frame_hook;
  936. extern Lisp_Object Vmouse_motion_handler;
  937. extern Lisp_Object Vsynchronize_minibuffers;
  938.  
  939. extern Lisp_Object Qframep, Qframe_live_p, Qdelete_frame;
  940. extern Lisp_Object Qselect_frame_hook, Qdeselect_frame_hook;
  941.  
  942.  
  943. /* Defined in frame-x.c */
  944. extern Lisp_Object Fx_set_scrollbar_pointer (Lisp_Object frame,
  945.                          Lisp_Object cursor);
  946. extern Lisp_Object Qpointer;
  947.  
  948.  
  949. /* Defined in general.c */
  950. extern Lisp_Object Qall;
  951. extern Lisp_Object Qboolean;
  952. extern Lisp_Object Qbuffer;
  953. extern Lisp_Object Qbytes;
  954. extern Lisp_Object Qcategory;
  955. extern Lisp_Object Qcase;
  956. extern Lisp_Object Qchars;
  957. extern Lisp_Object Qcolor;
  958. extern Lisp_Object Qcommand;
  959. extern Lisp_Object Qcritical;
  960. extern Lisp_Object Qdefault;
  961. extern Lisp_Object Qdevice;
  962. extern Lisp_Object Qdisplay;
  963. extern Lisp_Object Qdoc_string;
  964. extern Lisp_Object Qeq;
  965. extern Lisp_Object Qfont;
  966. extern Lisp_Object Qframe;
  967. extern Lisp_Object Qgeometry;
  968. extern Lisp_Object Qglobal;
  969. extern Lisp_Object Qhighlight;
  970. extern Lisp_Object Qinteger;
  971. extern Lisp_Object Qkeyboard;
  972. extern Lisp_Object Qmax;
  973. extern Lisp_Object Qmemory;
  974. extern Lisp_Object Qmessage;
  975. extern Lisp_Object Qminus;
  976. extern Lisp_Object Qname;
  977. extern Lisp_Object Qnotice;
  978. extern Lisp_Object Qpath;
  979. extern Lisp_Object Qprint;
  980. extern Lisp_Object Qresource;
  981. extern Lisp_Object Qreverse;
  982. extern Lisp_Object Qstring;
  983. extern Lisp_Object Qsymbol;
  984. extern Lisp_Object Qsyntax;
  985. extern Lisp_Object Qtext;
  986. extern Lisp_Object Qunimplemented;
  987. extern Lisp_Object Qvector;
  988. extern Lisp_Object Qwarning;
  989. extern Lisp_Object Qwindow;
  990.  
  991.  
  992. /* Defined in getloadavg.c */
  993. extern int getloadavg (double loadavg[], int nelem);
  994.  
  995.  
  996. /* Defined in glyphs.c */
  997. extern Lisp_Object Fmake_glyph_internal (Lisp_Object type);
  998. extern Lisp_Object Fmake_image_instance (Lisp_Object data,
  999.                       Lisp_Object device,
  1000.                       Lisp_Object force_mono,
  1001.                       Lisp_Object no_error);
  1002. extern Lisp_Object Fimage_instance_p (Lisp_Object obj);
  1003. extern Lisp_Object Fimage_instance_type (Lisp_Object image_instance);
  1004. extern Lisp_Object Fglyph_type (Lisp_Object glyph);
  1005. extern Lisp_Object Qnothing, Qmono_pixmap, Qcolor_pixmap;
  1006. extern Lisp_Object Qcursor, Qsubwindow;
  1007. extern Lisp_Object Qformatted_string;
  1008. extern Lisp_Object Qicon;
  1009.  
  1010.  
  1011. /* Defined in glyphs-x.c */
  1012. extern Lisp_Object Fcolorize_image_instance (Lisp_Object, Lisp_Object,
  1013.                           Lisp_Object);
  1014. extern Lisp_Object Fmake_cursor (Lisp_Object name, Lisp_Object fg,
  1015.                  Lisp_Object bg, Lisp_Object device);
  1016. extern Lisp_Object Fcursorp (Lisp_Object obj);
  1017. extern Lisp_Object Fcursor_name (Lisp_Object obj);
  1018. extern Lisp_Object Fcursor_foreground (Lisp_Object obj);
  1019. extern Lisp_Object Fcursor_background (Lisp_Object obj);
  1020.  
  1021.  
  1022. /* Defined in indent.c */
  1023. extern Lisp_Object Fvertical_motion (Lisp_Object lines, Lisp_Object window);
  1024. extern Lisp_Object Findent_to (Lisp_Object col, Lisp_Object mincol,
  1025.                    Lisp_Object buffer);
  1026. extern Lisp_Object Fcurrent_column (Lisp_Object buffer); 
  1027. extern int spaces_at_point (struct buffer *b, Bufpos pos);
  1028. extern int column_at_point (struct buffer *buf, Bufpos pos, int cur_col);
  1029. extern int current_column (struct buffer *buf);
  1030. extern void invalidate_current_column (void);
  1031. extern Bufpos vmotion (struct window *w, Bufpos orig, int vtarget,
  1032.                int *ret_vpos);
  1033.  
  1034.  
  1035. /* Defined in intl.c */
  1036. extern Lisp_Object Fignore_defer_gettext (Lisp_Object obj);
  1037. extern Lisp_Object Fgettext (Lisp_Object string);
  1038. extern Lisp_Object Fdgettext (Lisp_Object domain, Lisp_Object string);
  1039. extern Lisp_Object Fdomain (Lisp_Object);
  1040. extern Lisp_Object Qdefer_gettext;
  1041. #ifdef I18N3
  1042. extern Lisp_Object Vfile_domain;
  1043. #endif
  1044.  
  1045.  
  1046. /* Defined in keyboard.c */
  1047. extern void init_interrupts_late (void);
  1048. extern Lisp_Object Fdiscard_input (void), Frecursive_edit (void);
  1049. extern Lisp_Object Finput_pending_p (void);
  1050. extern Lisp_Object Qdisabled, Qtop_level;
  1051. extern Lisp_Object Vdisabled_command_hook;
  1052. extern void stuff_buffered_input (Lisp_Object stuffstring);
  1053. extern Lisp_Object Fset_input_mode (Lisp_Object interrupt,
  1054.                                     Lisp_Object flow, 
  1055.                                     Lisp_Object meta,
  1056.                     Lisp_Object quit,
  1057.                     Lisp_Object device);
  1058. extern int command_loop_level;
  1059. extern Lisp_Object Qreally_early_error_handler;
  1060.  
  1061.  
  1062. /* Defined in keymap.c */
  1063. extern Lisp_Object Fcurrent_local_map (Lisp_Object buffer);
  1064. extern Lisp_Object Fkeymapp (Lisp_Object);
  1065. extern Lisp_Object Fmake_sparse_keymap (void);
  1066. extern Lisp_Object Fkeymap_fullness (Lisp_Object keymap);
  1067. extern Lisp_Object Fkey_description (Lisp_Object key);
  1068. extern Lisp_Object Fsingle_key_description (Lisp_Object key);
  1069. extern Lisp_Object Ftext_char_description (Lisp_Object c);
  1070. extern Lisp_Object Qmodeline_map;
  1071. extern Lisp_Object Vsingle_space_string;
  1072. extern Lisp_Object Qcontrol, Qctrl, Qmeta, Qsuper, Qhyper, Qalt, Qshift;
  1073. extern Lisp_Object Qkeymap, Qkeymapp;
  1074. extern void where_is_to_char (Lisp_Object definition, char *buffer);
  1075.  
  1076.  
  1077. /* Defined in lread.c */
  1078. extern Lisp_Object Qvariable_documentation, Qstandard_input, Qread_char;
  1079. extern Lisp_Object Qvariable_domain; /* I18N3 */
  1080. extern Lisp_Object Qload;
  1081. extern Lisp_Object Vstandard_input;
  1082. extern Lisp_Object Vvalues;
  1083. extern Lisp_Object Fread (Lisp_Object readcharfun);
  1084. extern Lisp_Object Fread_from_string (Lisp_Object string, 
  1085.                                       Lisp_Object start, Lisp_Object end);
  1086. extern Lisp_Object Fload_internal (Lisp_Object filename,
  1087.                    Lisp_Object missing_ok,
  1088.                    Lisp_Object nomessage,
  1089.                    Lisp_Object nosuffix);
  1090. extern void close_load_descs (void);
  1091.  extern int locate_file (Lisp_Object path, 
  1092.                         Lisp_Object str, CONST char *suffix, 
  1093.                         Lisp_Object *storeptr, int mode);
  1094. extern Lisp_Object Flocate_file_clear_hashing (Lisp_Object path);
  1095. extern int isfloat_string (CONST char *);
  1096.  
  1097. #ifdef LOADHIST /* this is just a stupid idea */
  1098. #define LOADHIST_ATTACH(x) \
  1099.  do { if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list); } \
  1100.  while (0)
  1101. extern Lisp_Object Vcurrent_load_list;
  1102. extern Lisp_Object Vload_history;
  1103. #else /*! LOADHIST */
  1104. # define LOADHIST_ATTACH(x)
  1105. #endif /*! LOADHIST */
  1106.  
  1107.  
  1108. /* Defined in macros.c */
  1109. extern Lisp_Object Fexecute_kbd_macro (Lisp_Object macro, 
  1110.                                        Lisp_Object prefixarg);
  1111.  
  1112.  
  1113. /* Defined in marker.c */
  1114. extern Bufpos marker_position (Lisp_Object marker);
  1115. extern void set_marker_position (Lisp_Object marker, Bufpos pos);
  1116. extern void unchain_marker (Lisp_Object marker);
  1117. extern Lisp_Object Fset_marker (Lisp_Object marker, 
  1118.                                 Lisp_Object pos, Lisp_Object buffer);
  1119. extern Lisp_Object Fmarker_position (Lisp_Object m);
  1120. extern Lisp_Object Fmarker_buffer (Lisp_Object m);
  1121. extern Lisp_Object Fcopy_marker (Lisp_Object m);
  1122. extern Lisp_Object set_marker_restricted (Lisp_Object marker,
  1123.                                           Lisp_Object pos, Lisp_Object buf);
  1124.  
  1125.  
  1126. /* Defined in menubar.c */
  1127. int initialize_frame_menubar (struct frame *f);
  1128. extern Lisp_Object Fpopup_dialog_box (Lisp_Object dbox_desc);
  1129. extern Lisp_Object Fpopup_menu (Lisp_Object menu_desc, Lisp_Object event);
  1130. extern void update_frame_menubars (struct frame *f);
  1131. extern Lisp_Object Qcurrent_menubar;
  1132. extern Lisp_Object Qactivate_menubar_hook;
  1133. extern Lisp_Object Vactivate_menubar_hook;
  1134. extern int popup_menu_up_p;
  1135. extern Lisp_Object Qmouse_event_p; /* events.c */
  1136. extern Lisp_Object Q_active, Q_suffix, Q_keys, Q_style, Q_selected;
  1137. extern Lisp_Object Q_filter, Q_config, Q_included;
  1138. extern Lisp_Object Qtoggle, Qradio, Qbutton;
  1139.  
  1140.  
  1141. /* Defined in minibuf.c */
  1142. extern int minibuf_level;
  1143. extern Charcount scmp_1 (CONST Bufbyte *s1, CONST Bufbyte *s2, Charcount len,
  1144.              int ignore_case);
  1145. #define scmp(s1, s2, len) scmp_1 (s1, s2, len, completion_ignore_case)
  1146. extern Lisp_Object Fread_from_minibuffer (Lisp_Object prompt, 
  1147.                                           Lisp_Object init,
  1148.                                           Lisp_Object keymap,
  1149.                                           Lisp_Object read_crock,
  1150.                                           Lisp_Object hist);
  1151. extern int completion_ignore_case;
  1152. extern Lisp_Object Qcompletion_ignore_case;
  1153. extern Lisp_Object Vcompletion_regexp_list;
  1154. extern int regexp_ignore_completion_p (CONST Bufbyte *nonreloc,
  1155.                        Lisp_Object reloc, Bytecount offset,
  1156.                        Bytecount length);
  1157.  
  1158. extern Lisp_Object Vminibuffer_zero;
  1159.  
  1160. extern Lisp_Object Vecho_area_buffer;
  1161. extern Lisp_Object clear_echo_area (struct frame *f, Lisp_Object label, 
  1162.                     int no_restore);
  1163. extern Lisp_Object clear_echo_area_from_print (struct frame *f, 
  1164.                            Lisp_Object label, 
  1165.                            int no_restore);
  1166. extern void echo_area_append (struct frame *f, CONST Bufbyte *nonreloc,
  1167.                   Lisp_Object reloc, Bytecount offset,
  1168.                   Bytecount length, Lisp_Object type);
  1169. extern void echo_area_message (struct frame *f, CONST Bufbyte *nonreloc,
  1170.                    Lisp_Object reloc, Bytecount offset,
  1171.                    Bytecount length, Lisp_Object type);
  1172. extern Lisp_Object echo_area_status (struct frame *f);
  1173. extern int echo_area_active (struct frame *f);
  1174. extern Lisp_Object echo_area_contents (struct frame *f);
  1175. void message_internal (CONST Bufbyte *nonreloc, Lisp_Object reloc,
  1176.                Bytecount offset, Bytecount length);
  1177. extern void message (CONST char *fmt, ...);              /* ... printf args */
  1178. extern void message_no_translate (CONST char *fmt, ...); /* ... printf args */
  1179.  
  1180.  
  1181. /* Defined in mocklisp.c */
  1182. extern Lisp_Object Vmocklisp_arguments, Qmocklisp, Qmocklisp_arguments;
  1183. extern Lisp_Object ml_apply (Lisp_Object function, Lisp_Object args);
  1184.  
  1185.  
  1186. /* Defined in mule-*.c */
  1187. extern Lisp_Object Fread_coding_system (Lisp_Object prompt);
  1188. extern Lisp_Object Fread_non_nil_coding_system (Lisp_Object prompt);
  1189.  
  1190.  
  1191. /* Defined in print.c */
  1192. extern void write_string_to_stdio_stream (FILE *stream, CONST Bufbyte *str,
  1193.                       Bytecount offset, Bytecount len);
  1194. extern Lisp_Object Vprin1_to_string_buffer;
  1195. extern Lisp_Object Fprin1 (Lisp_Object obj, Lisp_Object printcharfun);
  1196. extern Lisp_Object Fprinc (Lisp_Object obj, Lisp_Object printcharfun);
  1197. extern Lisp_Object Fprint (Lisp_Object obj, Lisp_Object printcharfun);
  1198. extern Lisp_Object Fprin1_to_string (Lisp_Object obj, Lisp_Object noescape);
  1199. extern Lisp_Object Fterpri (Lisp_Object printcharfun);
  1200. extern Lisp_Object Vstandard_output, Qstandard_output;
  1201. extern Lisp_Object Qexternal_debugging_output;
  1202. extern void temp_output_buffer_setup (CONST char *bufname);
  1203. extern void temp_output_buffer_show (Lisp_Object buf, Lisp_Object same_scrn);
  1204. /* NOTE: Do not call this with the data of a Lisp_String.  Use princ.
  1205.  * Note: stream should be defaulted before calling
  1206.  *  (eg Qnil means stdout, not Vstandard_output, etc) */
  1207. extern void write_c_string (CONST char *s, Lisp_Object printcharfun);
  1208. /* Same goes for this function. */
  1209. extern void write_string_1 (CONST Bufbyte *s, Bytecount size, 
  1210.                             Lisp_Object printcharfun);
  1211. extern void print_internal (Lisp_Object obj, 
  1212.                             Lisp_Object printcharfun, 
  1213.                             int escapeflag);
  1214. extern Lisp_Object Vprint_level;
  1215. extern Lisp_Object Vprint_length;
  1216. extern int print_escape_newlines;
  1217. extern int print_readably;
  1218. extern Lisp_Object Qprint_escape_newlines;
  1219. extern Lisp_Object internal_with_output_to_temp_buffer
  1220.   (CONST char *bufname, 
  1221.    Lisp_Object (*function) (Lisp_Object args),
  1222.    Lisp_Object args,
  1223.    Lisp_Object same_frame);
  1224. extern void float_to_string (char *buf, double data);
  1225. extern void print_symbol (Lisp_Object, Lisp_Object stream, int escapeflag);
  1226. extern void print_bytecode (Lisp_Object, Lisp_Object stream, int escapeflag);
  1227. extern void print_float (Lisp_Object, Lisp_Object stream, int escapeflag);
  1228. extern Lisp_Object Qprint_length, Qprint_string_length;
  1229.  
  1230.  
  1231. /* Defined in process.c */
  1232. extern Lisp_Object Fprocess_send_eof (Lisp_Object process);
  1233.  
  1234.  
  1235. /* Defined in redisplay.c */
  1236. extern Lisp_Object Fredraw_display (Lisp_Object device);
  1237. extern Lisp_Object Fredraw_frame (Lisp_Object frame);
  1238. extern Lisp_Object Fmessage_displayed_p (Lisp_Object return_string);
  1239. extern Lisp_Object Voverlay_arrow_position, Voverlay_arrow_string;
  1240. extern Lisp_Object Vbar_cursor;
  1241. extern Lisp_Object Vwindow_system;
  1242. extern Lisp_Object Vwindow_system_version;
  1243. extern Lisp_Object Qcursor_in_echo_area;
  1244. /* Nonzero means reading single-character input with prompt
  1245.    so put cursor on minibuffer after the prompt.  */
  1246. extern int cursor_in_echo_area;
  1247.  
  1248.  
  1249. /* Defined in search.c */
  1250. struct re_pattern_buffer;
  1251. struct re_registers;
  1252. extern Lisp_Object Fstring_match (Lisp_Object regexp,
  1253.                                   Lisp_Object string, Lisp_Object start);
  1254. extern Lisp_Object Fmatch_beginning (Lisp_Object n);
  1255. extern Lisp_Object Fmatch_end (Lisp_Object n);
  1256. extern Lisp_Object Fskip_chars_forward (Lisp_Object string, Lisp_Object lim,
  1257.                     Lisp_Object buffer);
  1258. extern Lisp_Object Fskip_chars_backward (Lisp_Object string, Lisp_Object lim,
  1259.                      Lisp_Object buffer);
  1260. extern Bufpos scan_buffer (struct buffer *buf, Emchar target, Bufpos start,
  1261.                Bufpos Limit, int cnt, int *shortage,
  1262.                int allow_quit);
  1263. extern Bufpos find_next_newline (struct buffer *buf, Bufpos from, int cnt);
  1264. extern Bufpos find_next_newline_no_quit (struct buffer *buf, Bufpos from,
  1265.                      int cnt);
  1266. extern int compile_pattern (Lisp_Object pattern, 
  1267.                 struct re_pattern_buffer *bufp, 
  1268.                 struct re_registers *regp,
  1269.                 char *translate, int backward,
  1270.                 int no_error);
  1271. Bytecount fast_string_match (Lisp_Object regexp,  CONST Bufbyte *nonreloc,
  1272.                  Lisp_Object reloc, Bytecount offset,
  1273.                  Bytecount length, int no_error, int no_quit);
  1274. extern Lisp_Object Fre_search_forward (Lisp_Object string, Lisp_Object bound,
  1275.                                        Lisp_Object no_error, Lisp_Object count);
  1276.  
  1277.  
  1278. /* Defined in sound.c */
  1279. extern Lisp_Object Fplay_sound (Lisp_Object sound, Lisp_Object volume,
  1280.                 Lisp_Object device);
  1281. extern Lisp_Object Fding (Lisp_Object arg, Lisp_Object sound,
  1282.               Lisp_Object device);
  1283. extern void init_device_sound (struct device *d);
  1284. extern Lisp_Object Qnas;
  1285.  
  1286.  
  1287. /* Defined in specifier.c */
  1288. extern Lisp_Object Fspecifier_instance (Lisp_Object specifier,
  1289.                     Lisp_Object locale,
  1290.                     Lisp_Object defalt,
  1291.                     Lisp_Object no_fallback);
  1292. extern Lisp_Object Fspecifier_specs (Lisp_Object specifier,
  1293.                      Lisp_Object locale,
  1294.                      Lisp_Object tag_set,
  1295.                      Lisp_Object exact_p);
  1296. extern Lisp_Object Fspecifier_spec_list (Lisp_Object specifier,
  1297.                      Lisp_Object locale,
  1298.                      Lisp_Object tag_set,
  1299.                      Lisp_Object exact_p);
  1300. extern Lisp_Object Fmake_specifier (Lisp_Object type);
  1301. extern Lisp_Object Fadd_spec_to_specifier (Lisp_Object specifier,
  1302.                        Lisp_Object locale,
  1303.                        Lisp_Object instantiator,
  1304.                        Lisp_Object tag,
  1305.                        Lisp_Object how_to_add);
  1306. extern Lisp_Object Fvalid_specifier_locale_p (Lisp_Object locale);
  1307. extern Lisp_Object Fcopy_specifier (Lisp_Object specifier,
  1308.                     Lisp_Object dest,
  1309.                     Lisp_Object locale,
  1310.                     Lisp_Object tag_set,
  1311.                     Lisp_Object exact_p,
  1312.                     Lisp_Object how_to_add);
  1313. extern Lisp_Object specifier_instance (Lisp_Object specifier,
  1314.                        Lisp_Object domain,
  1315.                        int no_error_or_quit,
  1316.                        int no_fallback);
  1317. extern Lisp_Object specifier_instance_no_quit (Lisp_Object specifier,
  1318.                            Lisp_Object domain,
  1319.                            int no_fallback);
  1320. extern Lisp_Object Qfallback;
  1321. extern Lisp_Object Qgeneric, Qnatnum;
  1322.  
  1323.  
  1324. /* Defined in symbols.c */
  1325. extern Lisp_Object Vobarray;
  1326. extern Lisp_Object Fintern (Lisp_Object str, Lisp_Object obarray);
  1327. extern Lisp_Object Fintern_soft (Lisp_Object str, Lisp_Object obarray);
  1328. extern int hash_string (CONST Bufbyte *, Bytecount len);
  1329. extern Lisp_Object intern (CONST char *);
  1330. extern Lisp_Object oblookup (Lisp_Object obarray,
  1331.                  CONST Bufbyte *, Bytecount len);
  1332. extern void map_obarray (Lisp_Object obarray, 
  1333.                          void (*fn) (Lisp_Object sym, Lisp_Object arg),
  1334.                          Lisp_Object arg);
  1335. extern Lisp_Object Fboundp (Lisp_Object sym);
  1336. extern Lisp_Object Ffboundp (Lisp_Object);
  1337. extern Lisp_Object Ffset (Lisp_Object sym, Lisp_Object val);
  1338. extern Lisp_Object Fsymbol_plist (Lisp_Object sym);
  1339. extern Lisp_Object Fsetplist (Lisp_Object sym, Lisp_Object val);
  1340. extern Lisp_Object Fsymbol_function (Lisp_Object sym);
  1341. extern Lisp_Object Fsymbol_value (Lisp_Object sym);
  1342. extern Lisp_Object Fdefault_value (Lisp_Object sym);
  1343. extern Lisp_Object Fdefault_boundp (Lisp_Object sym);
  1344. extern Lisp_Object Fset (Lisp_Object sym, Lisp_Object val);
  1345. extern Lisp_Object Fset_default (Lisp_Object sym, Lisp_Object val);
  1346. extern Lisp_Object Fsymbol_name (Lisp_Object sym);
  1347. extern Lisp_Object Findirect_function (Lisp_Object object);
  1348. extern Lisp_Object indirect_function (Lisp_Object object, int errorp);
  1349. extern Lisp_Object symbol_value_in_buffer (Lisp_Object sym, Lisp_Object buf);
  1350. extern void kill_buffer_local_variables (struct buffer *buf);
  1351. extern Lisp_Object Fmake_local_variable (Lisp_Object object);
  1352. extern int symbol_value_buffer_local_info (Lisp_Object symbol,
  1353.                                            struct buffer *);
  1354. extern Lisp_Object find_symbol_value (Lisp_Object symbol);
  1355. extern Lisp_Object top_level_value (Lisp_Object symbol);
  1356. extern Lisp_Object Fkill_local_variable (Lisp_Object symbol);
  1357. extern Lisp_Object Fmake_variable_buffer_local (Lisp_Object variable);
  1358.  
  1359. /* Defined in syntax.c */
  1360. extern int scan_words (struct buffer *buf, int from, int count);
  1361. extern Lisp_Object Fforward_word (Lisp_Object n, Lisp_Object buffer);
  1362.  
  1363.  
  1364. /* Defined in sysdep.c, also declared in sysdep.h.
  1365.    (These may be called via the open, etc macros instead...)
  1366.  */
  1367. #ifdef ENCAPSULATE_OPEN
  1368. extern int sys_open (CONST char *path, int oflag, ...);
  1369. #endif
  1370. #ifdef ENCAPSULATE_CLOSE
  1371. extern int sys_close (int fd);
  1372. #endif
  1373. #ifdef ENCAPSULATE_READ
  1374. extern int sys_read (int fildes, void *buf, unsigned int nbyte);
  1375. #endif
  1376. #ifdef ENCAPSULATE_WRITE
  1377. extern int sys_write (int fildes, CONST void *buf, unsigned int nbyte);
  1378. #endif
  1379.  
  1380. #ifdef ENCAPSULATE_FOPEN
  1381. extern FILE *sys_fopen (CONST char *path, CONST char *type);
  1382. #endif
  1383. #ifdef ENCAPSULATE_FCLOSE
  1384. extern int sys_fclose (FILE *stream);
  1385. #endif
  1386. #ifdef ENCAPSULATE_FREAD
  1387. extern size_t sys_fread (void *ptr, size_t size, size_t nitem, FILE *stream);
  1388. #endif
  1389. #ifdef ENCAPSULATE_FWRITE
  1390. extern size_t sys_fwrite (CONST void *ptr, size_t size, size_t nitem,
  1391.               FILE *stream);
  1392. #endif
  1393.  
  1394. unsigned int sys_getuid (void);
  1395.  
  1396. extern char *egetenv (CONST char *);
  1397. /* extern char *getenv (CONST char *); */
  1398.  
  1399.  
  1400. /* Defined in undo.c */
  1401. extern Lisp_Object Fundo_boundary (void);
  1402. extern Lisp_Object truncate_undo_list (Lisp_Object list, int min, int max);
  1403. extern void record_extent (Lisp_Object extent, int attached);
  1404. extern void record_insert (struct buffer *b, Bufpos beg, Charcount length);
  1405. extern void record_delete (struct buffer *b, Bufpos beg, Charcount length);
  1406. extern void record_change (struct buffer *b, Bufpos beg, Charcount length);
  1407.  
  1408.  
  1409. /* Defined in unex*.c */
  1410. extern int unexec (char *new_name, char *a_name,
  1411.                    unsigned int data_start, 
  1412.                    unsigned int bss_start, 
  1413.                    unsigned int entry_address);
  1414. #ifdef RUN_TIME_REMAP
  1415. extern int run_time_remap (char *);
  1416. #endif
  1417.  
  1418.  
  1419. /* Defined in vm-limit.c */
  1420. extern void memory_warnings (void *start, void (*warnfun) (CONST char *));
  1421.  
  1422.  
  1423. /* Defined in window.c */
  1424. extern Lisp_Object Qvisible;
  1425. extern Lisp_Object Qscroll_up, Qscroll_down;
  1426. extern Lisp_Object Fselected_window (Lisp_Object device);
  1427. extern Lisp_Object Fwindow_buffer (Lisp_Object window);
  1428. extern Lisp_Object Fwindow_lowest_p (Lisp_Object window);
  1429. extern Lisp_Object Fwindow_highest_p (Lisp_Object window);
  1430. extern Lisp_Object Fget_buffer_window (Lisp_Object buffer, 
  1431.                                        Lisp_Object frame,
  1432.                                        Lisp_Object ignored);
  1433. extern Lisp_Object Fsave_window_excursion (Lisp_Object body);
  1434. extern Lisp_Object Fset_window_configuration (Lisp_Object config);
  1435. extern Lisp_Object Fcurrent_window_configuration (Lisp_Object frame);
  1436. extern Lisp_Object Fdisplay_buffer (Lisp_Object buffer, 
  1437.                                     Lisp_Object notthiswindow, 
  1438.                                     Lisp_Object overrideframe);
  1439. extern Lisp_Object Freplace_buffer_in_windows (Lisp_Object buffer);
  1440. extern Lisp_Object Fwindow_dedicated_p (Lisp_Object window);
  1441. extern Lisp_Object Fnext_window (Lisp_Object window, 
  1442.                                  Lisp_Object minibuf, 
  1443.                                  Lisp_Object all_frames,
  1444.                                  Lisp_Object ignored);
  1445. extern Lisp_Object Fdelete_window (Lisp_Object window);
  1446. extern Lisp_Object Fselect_window (Lisp_Object window);
  1447. extern Lisp_Object Fset_window_buffer (Lisp_Object window, 
  1448.                                        Lisp_Object buffer);
  1449. extern Lisp_Object Fsplit_window (Lisp_Object window, 
  1450.                                   Lisp_Object chsize, 
  1451.                                   Lisp_Object horflag);
  1452. extern Lisp_Object Frecenter (Lisp_Object arg, Lisp_Object window);
  1453. extern Lisp_Object Fmove_to_window_line (Lisp_Object arg, Lisp_Object window);
  1454. extern Lisp_Object Fbuffer_left_margin_pixwidth (Lisp_Object buffer);
  1455. extern Lisp_Object Fbuffer_right_margin_pixwidth (Lisp_Object buffer);
  1456. extern Lisp_Object Fset_window_hscroll (Lisp_Object window, Lisp_Object ncol);
  1457. extern Lisp_Object Fwindow_point (Lisp_Object window);
  1458. extern Lisp_Object Fset_window_point (Lisp_Object window, Lisp_Object pos);
  1459. extern Lisp_Object Fset_window_start (Lisp_Object window, Lisp_Object pos,
  1460.                       Lisp_Object noforce);
  1461. extern Lisp_Object Fwindow_start (Lisp_Object window);
  1462. extern Lisp_Object Fwindow_end (Lisp_Object window, Lisp_Object guarantee);
  1463.  
  1464. #endif /* _EMACSFNS_H_ */
  1465.